u c, t , ! % g e t       /  3u%ef,upd05.txt/%sf,upd05.txt/%bf,upd05.txt/   * 41|qcs|                       Query Command String

The value  of  this  function  is  that string of characters`
entered after the name  which  brought  the  SAM76  language`
interpreter into action from the operating system.

    40|qfs,filename|              Query File Size

The value  of  this function is the file size as a number of`
256 byte records.

   ~ 39|lff,s0|            List File Functions

The value  of  this  function  is  a  list  of the functions`
available in the "dsk" disk overlay. Each function  name  is`
preceded with the string symbolized by "s0".

    38|qfe|                       Query File Extension

The value of this function is the current setting of the file`
extension.

   }37|sfe,s|                     Set File Extension

This null  valued function presets the file extension to the`
string symbolized by "s". If "s" is made equal to ???,  then`
all  extensions are accessed. If "s" is made null then files`
with no extensions are accessed.

   36|qdu|                       Query Directory Unit

The value  of  this  function  is  the identification of the`
currently active directory unit.

    35|sdu,d|                     Select Directory Unit

This null valued function is used to select the device whose`
number is symbolized by "d".

   "34At  this  time  only  one  input  and one output file may be`
declared  open.  Experience  in  the  use  of  the  language`
suggests very little need for simultaneous access to several`
files  because  of  the  wide variety of other means of file`
management available within the SAM76 language  system.  The`
main  purpose in providing the foregoing set of functions is`
primarily to  permit  conversion  of  "conventional"  system`
files  to  SAM76  organized  file  structures,  or to create`
"conventional" files from SAM76 files.

   33|wfr,s|                     Write File Record

This null  valued  function  will  write out to a previously`
properly opened file the string symbolized by "s". There  is`
no  specified limit as to the number of characters in string`
"s".

   ,32|rfr|                       Read File Record

The value  of  this  function  is  one  record  from  a file`
previously opened  using  the  "dif"  designate  input  file`
function.  Typically this will be 128 characters, except for`
the last record of the file which may be less than that.

  ",31|dof,filename|              Designate Output File

This null valued function is used to open a file for output.`
Such output is attained through use of the "wfr" write  file`
record  function or through use of the "soc,FIL" function to`
the desired SAM76  language  function  designed  to  deliver`
output.

"filename" is  defined  in  the same manner as for the "dif"`
designate input file function. A file is  explicitly  closed`
by  executing %dof/= with no arguments. Exit using control C`
or the "ex" exit function does not close the file.

  "?30|dif,filename|              Designate Input File

This function  serves  to open a disk file for access either`
through use of the "rfr" read file record function,  or  via`
channel  control  assignment  of  "FIL"  to any of the SAM76`
language functions that are designed to accept input.

"filename" symbolizes the name of the file it is desired  to`
access.  This  may  be of the form "name.ext", or just plain`
"name" if the extension has been preset to either  "???"  or`
some  other  explicit extension through use of the "sfe" set`
file extension function.

  5 29
.]20    File interaction

The file  functions which are available to permit assignment`
via   the   channel  control  mechanism  of  SAM76  language`
functions are defined as follows:

   28
.[20    Caution!

The user  must  be careful to construct procedures in such a`
manner that the system will not be "hung" in a mode that  is`
difficult  to recover from. Also judicious use of the "nud",`
and "sem" functions should be considered.

   @27|sic,sym|           Select Input Channel

This null  valued function assigns to the channel whose name`
is symbolized by "sym" one of the two groups  of  functions:`
if  this  function is executed actively the assignment is of`
the Group 1 functions, if neutrally the assignment is of the`
Group 2 functions.

  6K26|soc,sym|           Select Output Channel

This null  valued function assigns to the channel whose name`
is symbolized by "sym" one of the two groups  of  functions:`
if this function is executed actively then the assignment is`
of  the  Group 1 functions, if neutrally then the assignment`
is of the Group 2 functions.

  A25|loc,s0|            List Output Channels

The value  of  this  function is a list of the channel names`
that  may  be  used  in  the  "soc"  select  output  channel`
function.  Each  name is preceded with the string symbolized`
by "s0". Typical symbol names returned by this function are:

CON     Normally the user display unit
PUN     Punch
FIL     A disk file properly opened with the "dof" function
USR     A user provided driver pointed to at location POC
LST     A listing device

  24|lic,s0|            List Input Channels

The value  of  this function is a list of channel names that`
may be used in the "sic" select input channel function; each`
name in the value  returned  is  preceded  with  the  string`
symbolized  by  "s0". Typical of these channel names are the`
following:

CON     Console, normally the user keyboard
RDR     Reader
FIL     A disk file opened with the "dif" function
USR     A device whose driver adress is at UIC location

  23
.]20    |the channel|control|family

Means are  provided within the SAM76 language interpreter to`
reassociate these two groups with other devices  than  those`
normally  assigned.  This  is independent of the assignments`
that may be made using the "IOBYTE" if available; note  that`
the  assignments  will  however  be  made within the general`
framework of the IOBYTE setting as modified through  use  of`
the "sio" set IO function.

Channel control functions are defined as follows:

  ]22
.[15    |Group 2

This group  of functions is normally initialized to interact`
with  the  so  called  "Reader"  and  "Punch"  channels  {as`
vectored  by  RI  and  PO}. Functions in this group are "it"`
input text, "idt" input d texts, "ot" output text,  "xu,xmt"`
xperimental  user  transmit,  and  "xu,rcv" xperimental user`
receive.

  SH21
.[15    |Group 1

This group  of functions is normally initialized to interact`
with the user console {as vectored by CI CS and  CO}.  These`
functions  are:  "is" input string, "os" output string, "ic"`
input character, "id" input  d  characters,  "im"  input  to`
matching string, "vt" view text, "tm" trace mode.

  >20
.]20    Channel Control

A number  of the SAM76 language functions are concerned with`
accepting or delivering data between the  SAM76  system  and`
the  outside world. For convenience two communication groups`
are defined and the initial assignments are as listed below:

  